home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
WarriorsProgress.sit
/
Warrior’s Progress
/
source code
/
Source
/
Libraries
/
Trees
/
RedBlackTree.h
< prev
next >
Wrap
Text File
|
1997-06-28
|
1KB
|
51 lines
// RedBlackTree.h
#ifndef RedBlackTree_h
#define RedBlackTree_h
#ifndef Tree_h
#include "Tree.h"
#endif
#ifndef Integers_h
#include "Integers.h"
#endif
class RedBlackTree: private Tree
{
friend class RedBlackNode;
private:
uint32 blackHeight;
static RedBlackNode *DownCast( TreeNode *n );
static const RedBlackNode *DownCast( const TreeNode *n );
void FixRedChain( RedBlackNode& );
void Redden( RedBlackNode& );
public:
RedBlackTree();
~RedBlackTree();
void Add( RedBlackNode&, AtRoot );
void Add( RedBlackNode&, Before, RedBlackNode& );
void Add( RedBlackNode&, After, RedBlackNode& );
void Remove( RedBlackNode& );
void RemoveAll();
Tree::IsEmpty;
const RedBlackNode *Root() const { return DownCast( Tree::Root() ); }
const RedBlackNode *First() const { return DownCast( Tree::First() ); }
const RedBlackNode *Last() const { return DownCast( Tree::Last() ); }
RedBlackNode *Root() { return DownCast( Tree::Root() ); }
RedBlackNode *First() { return DownCast( Tree::First() ); }
RedBlackNode *Last() { return DownCast( Tree::Last() ); }
bool Valid() const;
};
#endif